home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / cnet / MainMacros.lha / MainMacros / MainMacros.rexx < prev    next >
OS/2 REXX Batch file  |  1995-05-05  |  2KB  |  60 lines

  1. /* $VER: MainMacros.rexx 1.0 (4/18/95 by Spike Dethman)
  2. */
  3. /* print random Main> prompt, preceeded by "macro" */
  4. options results ; signal on SYNTAX ; signal on ERROR ; signal on IOERR
  5.  
  6. path="env:MainMacros/"
  7. macro=path||"MainMacros"
  8. prompt=path||"MainPrompts"
  9.  
  10. Start:
  11. seed=random(,,time(s))
  12. colorstring='12345679abcdef'
  13.  
  14. MainMacro:
  15. call open(f1,macro||'Num','r') ; num=readln(f1) ; call close(f1)
  16. call open(f1,macro,'r') ; call PickOne
  17. call CenterIt
  18. color=substr(colorstring,random(1,length(colorstring)),1)
  19. transmit 'c'color'r1'selectedline'q1'
  20.  
  21. MainPrompt:
  22. call open(f1,prompt||'Num','r') ; num=readln(f1) ; call close(f1)
  23. call open(f1,prompt,'r') ; call PickOne
  24. sendstring 'n1q0c6'selectedline' q1'
  25. exit
  26.  
  27.  
  28. PickOne:
  29. pick=random(1,num+1) ; if pick>num then signal PickOne
  30. do i=1 to pick ; selectedline=readln(f1) ; end i
  31. call close(f1) ; return
  32.  
  33. CenterIt:
  34. getuser 27 ; termwidth=result-1 ; pad=termwidth-length(selectedline)
  35. if pad > 0 then do ; selectedline='n1'copies(' ',pad%2)||selectedline||copies(' ',pad%2) ; return ; end
  36.  
  37. sel2=''
  38. do while length(selectedline)>0 ;
  39. sel2=sel2||'n1' ;
  40.     i=termwidth ;
  41.     if i < length(selectedline) then
  42.         do until (substr(selectedline,i,1)=' ' | i=0) ;
  43.             i=i-1 ;
  44.         end ;
  45.     else i=length(selectedline)
  46.  
  47.     if i=0 then i=termwidth ;
  48.     pad=(termwidth-i)%2
  49.     sel2=sel2||copies(' ',pad)left(selectedline,i)||copies(' ',termwidth-i-pad) ;
  50.     selectedline=substr(selectedline,i+1) ;
  51. end
  52. selectedline=sel2 ; return
  53.  
  54.  
  55. SYNTAX:
  56. ERROR:
  57. IOERR:
  58. sendstring "n1q0c6Main> q1"
  59. exit
  60.